#ifndef FIGHT_SCREEN_H
#define FIGHT_SCREEN_H

#include "qdialog.h"
#include "qboxlayout.h"
#include <iostream>
#include "Outcome.h"
#include "qwidget.h"
#include "qlabel.h"
#include "Die.h"
#include <string>
#include "ui_talisman.h"

class PlayerCharacter;
class NonPlayerCharacter;
class CharacterFightInfo;
class EnemyFightInfo;
class QPushButton;

class FightScreen : public QDialog
{
	Q_OBJECT

public:
	FightScreen(PlayerCharacter &iPlayer, NonPlayerCharacter &iEnemy, QWidget * parent = 0);
	virtual ~FightScreen();
	inline Outcome::Outcome getFightOutcome(void) const { return mFightOutcome; };

protected:
	private slots:
		void evade();
		void fight();
		void reroll();
		void ok();
		void spell();

private:
	Outcome::Outcome mFightOutcome;
	PlayerCharacter &mPlayer;
	NonPlayerCharacter &mEnemy;
	Die *playerDie;
	Die *enemyDie;
	CharacterFightInfo *mPlayerInfo;
	EnemyFightInfo *mEnemyInfo;
	QHBoxLayout *layout;
	QVBoxLayout *buttonsLayout;
	QHBoxLayout *dieLayout;
	QWidget *buttonsPanel;
	QWidget *dieWidget;

	QPushButton *evadeButton;
	QPushButton *fightButton;
	QPushButton *rerollButton;
	QPushButton *spellButton;
	QPushButton *okButton;

	QLabel *result;
};

#endif